﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DAO;
using Domain;
using Microsoft.Practices.EnterpriseLibrary.Validation;

public partial class UsrEmpData : System.Web.UI.Page
{
    public long? id
    {
        get
        {
            long l = 0;
            if (Request.QueryString["id"] == null ||
               !long.TryParse(Request.QueryString["id"], out l) ||
               l <= 0)
                return null;
            return l;
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (id.HasValue)
            {
                cargarDatos(id.Value);    
            }               
        }
    }
    
    private void cargarDatos(long id)
    {
        Usuario usr = ((Usuario)Utils.operadorLogueado);
        if (usr.AsociacionesActivas.Exists(delegate(Asociacion a) { return (a.IdEmpresa != null && a.IdEmpresa.Value == id); }))
        {
            btn_Asociacion.Text = "Desasociar";
        }
        else
        {
            btn_Asociacion.Text = "Asociar";
        }
        Empresa e = EmpresaDAO.Traer(id);
        lbl_cuit.Text = e.UserName.ToString("00-00000000-0");
        lbl_mail.Text = e.EMail;
        lbl_razon.Text = e.RazonSocial;
        lbl_rubro.Text = e.Rubro;
        img_logo.ImageUrl = Utils.imageHandlerPath(e.Logo, e is Empresa);

        if (!e.Lat.HasValue)
        {

            img_location.Visible = false;

        }
        else
        {
            img_location.Visible = true;
            img_location.Src = string.Format(img_location.Attributes["formatlocation"], e.Lat.Value.ToString().Replace(',', '.') + ", " + e.Long.Value.ToString().Replace(',', '.'));
        }
        lbl_location_na.Visible = !img_location.Visible;


        if (e.Publicaciones.Count <= 0)
        {
            lbl_nopublicaciones.Visible = true;
            dg_publicaciones.Visible = false;
        }
        else
        {
            lbl_nopublicaciones.Visible = false;

            var data = from p in e.Publicaciones
                       select new
                       {
                           idpublicacion = p.Id,
                           Logo = ResolveClientUrl(Utils.imageHandlerPath(p.Logo, p is Empresa)),
                           Descripcion = p.Descripcion,
                           link = "<a icon='search' href='" + ResolveClientUrl(Utils.SecureRedirect("~/UsrPublicacionData.aspx?id=" + (p.Id))) + "' >Ver</a>"
                       };

            dg_publicaciones.DataSource = data;
            dg_publicaciones.DataBind();
            dg_publicaciones.Visible = true;
        }

    }

    protected void btn_Asociacion_Click(object sender, EventArgs e)
    {
        ul_mensajes.InnerHtml = string.Empty;

        if (btn_Asociacion.Text == "Desasociar")
        {
            Utils.operadorLogueado = UsuarioDAO.DesasociarEmpresa((Usuario)Utils.operadorLogueado, id.Value);
        }
        else
        {
            Utils.operadorLogueado = UsuarioDAO.AsociarEmpresa((Usuario)Utils.operadorLogueado, id.Value);
            ul_mensajes.InnerHtml += "<li class='itemok'>" + "Ahora estás siguiendo a " + lbl_razon.Text + "</li>";
        }

        cargarDatos(id.Value);
    }
}
